// components/goodsku.js
Component({
  /**
   * 组件的属性列表
   */
  // 接收父组件传过来的数据
  properties: {
    basicInfo: {
      type: Object,
      default: ''
    },
    properties: {
      type: Array,
      default: ''
    },

  },

  /**
   * 组件的初始数据
   */
  data: {
    // 选择的商品属性数组[1.5M 胭脂粉]
    chooseProps: [],
    // 选择的商品id
    choosePropsIds: [],
    // 数量
    count: 1
  },

  /**
   * 组件的方法列表
   */
  methods: {

    // 获取数量
    countChange(e) {
      // 赋值
      this.data.count = e.detail
      this.setData({
        count: this.data.count
      })
    },
    // 点击切换颜色样式
    activeClick(e) {
      // 获取外层循环的index和外层循环的index2
      let {
        index1,
        index2,
        item1,
        item2
      } = e.currentTarget.dataset
      // 赋值
      this.properties.properties[index1].activeIndex = index2
      // 把商品属性添加到数据 获取属性名称
      let name = this.properties.properties[index1].childsCurGoods[index2].name
      // 把属性名称添加到数组
      this.data.chooseProps[index1] = name
      // 将属性id赋值
      this.data.choosePropsIds[index1] = item1.id + ':' + item2.id
      // 渲染到页面
      this.setData({
        properties: this.properties.properties
      })
    },
    // 加入购物车
    addCart() {
      let token = wx.getStorageSync('token')
      if (!token) {
    
        wx.navigateTo({
          url: '/pages/login/login',
        })
        return;
      }
      // 读取本地
      let cart = wx.getStorageSync('cart') || []
      // 解构赋值
      let {
        pic,
        name,
        minPrice,
        id: goodsId
      } = this.properties.basicInfo
      let {
        count
      } = this.data
      // 要添加到购物车的数据
      let info = {
        // 图片
        pic,
        // 名字
        name,
        // 价格
        minPrice,
        // 数量
        count,
        // 是否选中
        checked: false,
        // 把数组转成字符串
        props: this.data.chooseProps.join(' '),
        // 商品Id
        goodsId,
        // 属性id
        id: this.data.choosePropsIds.join(',')
      }

      // 过滤数组里的每一项 
      let arr = this.data.chooseProps.filter(item => item)
      console.log(arr);
      if (arr.length < this.properties.properties.length) {
        return wx.showToast({
          title: '参数选择不完整',
          icon: 'error',
          duration: 2000
        })
        return;
      }
      // 判断商品在缓存中是否存在
      let index = cart.findIndex((item) => {
        return item.goodsId == goodsId && item.props == info.props
      })
      // 不存在直接添加
      if (index == -1) {
        cart.unshift(info)
      } else {
        cart[index].count += 1
      }
      wx.showToast({
        title: '加入购物车成功',
      })
      wx.setStorageSync('cart', cart)
      // 触发父组件事件
      this.triggerEvent('myevent', {
        show: false
      });
    }
  }
})